if ( ! defined( 'ABSPATH' ) ) { exit; } // Exit if accessed directly
if( ! Avia_Config_LayerSlider()->is_active() )
{
return;
}
if ( ! class_exists( 'avia_sc_layerslider' ) )
{
class avia_sc_layerslider extends aviaShortcodeTemplate
{
static $slide_count = 0;
/**
* Create the config array for the shortcode button
*/
public function shortcode_insert_button()
{
$this->config['self_closing'] = 'yes';
$this->config['forced_load_objects'] = array('layerslider'); // Lnea corregida
$this->config['name'] = __('Advanced Layerslider', 'avia_framework');
$this->config['tab'] = __('Media Elements', 'avia_framework');
$this->config['icon'] = AviaBuilder::$path['imagesURL'] . "sc-slideshow-layer.png";
$this->config['order'] = 10;
$this->config['target'] = 'avia-target-insert';
$this->config['shortcode']= 'av_layerslider';
$this->config['tooltip'] = __('Display a Layerslider Slideshow', 'avia_framework');
$this->config['tinyMCE'] = array('disable' => "true");
$this->config['drag-level'] = 1;
}
function extra_assets()
{
//load css
wp_enqueue_style( 'avia-module-slideshow-ls' , AviaBuilder::$path['pluginUrlRoot'].'avia-shortcodes/slideshow_layerslider/slideshow_layerslider.css' , array('avia-layout'), false );
//load js
wp_enqueue_script( 'avia-module-slideshow-ls' , AviaBuilder::$path['pluginUrlRoot'].'avia-shortcodes/slideshow_layerslider/slideshow_layerslider.js' , array('avia-shortcodes'), false, TRUE );
}
/**
* Editor Element - this function defines the visual appearance of an element on the AviaBuilder Canvas
* Most common usage is to define some markup in the $params['innerHtml'] which is then inserted into the drag and drop container
* Less often used: $params['data'] to add data attributes, $params['class'] to modify the className
*
*
* @param array $params this array holds the default values for $content and $args.
* @return $params the return array usually holds an innerHtml key that holds item specific markup.
*/
public function editor_element($params)
{
//fetch all registered slides and save them to the slides array
$slides = Avia_Config_LayerSlider()->find_layersliders( true );
if(empty($params['args']['id']) && is_array($slides)) $params['args']['id'] = reset($slides);
if(empty($params['args']['id'])) $params['args']['id'] = "";
$element = array(
'subtype' => $slides,
'type'=>'select',
'std' => $params['args']['id'],
'class' => 'avia-recalc-shortcode',
'data' => array('attr'=>'id')
);
$inner = "
";
if(empty($slides))
{
$inner.= "
";
}
else
{
$inner .= "".$this->config['name']."
";
$inner .= AviaHtmlHelper::render_element($element);
$inner .= "".__('Edit Layer Slider here','avia_framework' )."";
}
$params['class'] = "av_sidebar";
$params['innerHtml'] = $inner;
return $params;
}
/**
* Frontend Shortcode Handler
*
* @param array $atts array of attributes
* @param string $content text within enclosing form of shortcode element
* @param string $shortcodename the shortcode found, when == callback name
* @param array $meta
* @return string $output returns the modified html string
*/
public function shortcode_handler($atts, $content = "", $shortcodename = "", $meta = array() )
{
$atts = shortcode_atts( array(
'id' => 0
), $atts, $this->config['shortcode'] );
$output = "";
avia_sc_layerslider::$slide_count++;
$skipSecond = false;
$params = array();
/**
* Get selected slider or last slider
*/
$slider = Avia_Config_LayerSlider()->get_default_slider( $atts['id'] );
if( ! empty( $slider ) )
{
$atts['id'] = $slider['id'];
$slides = json_decode( $slider['data'], true );
$height = $slides['properties']['height'];
$width = $slides['properties']['width'];
$responsive = ! empty( $slides['properties']['responsive'] ) ? $slides['properties']['responsive'] : '';
$responsiveunder = ! empty( $slides['properties']['responsiveunder'] ) ? $slides['properties']['responsiveunder'] : '';
if( ! empty( $slides['properties']['type'] ) && ( 'responsive' == $slides['properties']['type'] ) )
{
$params['style'] = " style='height: " . ($height+1) . "px; max-width: {$width}px; margin: 0 auto;' ";
}
else
{
$params['style'] = " style='height: " . ($height+1) . "px;' ";
}
}
else
{
/**
* Force an error message in frontend for admins
*/
$atts['id'] = 0;
}
$params['class'] = "avia-layerslider main_color avia-shadow ".$meta['el_class'];
$params['open_structure'] = false;
//we dont need a closing structure if the element is the first one or if a previous fullwidth element was displayed before
if(empty($meta['index'])) $params['close'] = false;
if(!empty($meta['siblings']['prev']['tag']) && in_array($meta['siblings']['prev']['tag'], AviaBuilder::$full_el_no_section )) $params['close'] = false;
if(!empty($meta['index'])) $params['class'] .= " slider-not-first";
$params['id'] = "layer_slider_".( avia_sc_layerslider::$slide_count );
$output .= avia_new_section($params);
if(class_exists('LS_Shortcode') && method_exists('LS_Shortcode', 'handleShortcode')) //fix for search results page - only works with latest LayerSlider versions
{
$output .= LS_Shortcode::handleShortcode( $atts );
}
else if(function_exists('layerslider_init')) //fix for search results page - only works with older LayerSlider versions
{
$output .= layerslider_init( $atts );
}
$output .= ""; //close section
//if the next tag is a section dont create a new section from this shortcode
if(!empty($meta['siblings']['next']['tag']) && in_array($meta['siblings']['next']['tag'], AviaBuilder::$full_el ))
{
$skipSecond = true;
}
//if there is no next element dont create a new section.
if(empty($meta['siblings']['next']['tag']))
{
$skipSecond = true;
}
if(empty($skipSecond)) {
$output .= avia_new_section(array('close'=>false, 'id' => "after_layer_slider_".avia_sc_layerslider::$slide_count));
}
return $output;
}
}
}
{"code":"rest_no_route","message":"No se ha encontrado ninguna ruta que coincida con la URL y el m\u00e9todo de la solicitud.","data":{"status":404}}